﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using VietPublisher.Membership;
using VietPublisher.BSL.BK;


namespace VietPublisher.Repositories.Interface
{
   public interface IAccountRepository
    {
        /// <summary>
        /// Get a list of Account
        /// </summary>
        /// <returns></returns>
        List<T_BK_UserExtend> getAccountList();

        /// <summary>
        /// Get Account by UserName
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        T_BK_UserExtend getAccountByUserName(String userName);

        /// <summary>
        /// Create a Account
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        Boolean CreateAccount(T_BK_UserExtend account, string Password,
       VietPublisher.BaseProject.Enums.UserTypes UserTypes);

        /// <summary>
        /// Update a account
        /// </summary>
        /// <param name="account"></param>
        /// <returns></returns>
        int UpdateAccount(T_BK_UserExtend account);

        /// <summary>
        /// Delete a account
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        Boolean DeleteAccount(String userName);

       /// <summary>
       /// change password
       /// </summary>
       /// <param name="userName"></param>
       /// <param name="oldPass"></param>
       /// <param name="newPass"></param>
       /// <returns></returns>
        Boolean ChangePassword(string userName, string oldPass, string newPass);
       /// <summary>
       /// Admin login 
       /// </summary>
       /// <param name="userName"></param>
       /// <param name="passWord"></param>
       /// <returns>True is success</returns>
        Boolean Login(string userName, string passWord);

       /// <summary>
       /// User Login
       /// </summary>
       /// <param name="userName"></param>
       /// <param name="passWord"></param>
       /// <returns></returns>
        Boolean LoginCustomer(string userName, string passWord);

       /// <summary>
       /// Get user type by userName
       /// </summary>
       /// <param name="userName"></param>
       /// <returns></returns>
       BaseProject.Enums.UserTypes GetUserTypeBy(string userName);

    }
}
